
$(document).ready(function() {
	
	$("#cajachicaForm").validate();
	
	// botones
	Utiles_Botones.creaBotonGuardarDatos("btn_pedido",guardarRendicion);
	Utiles_Botones.creaBotonLimpiar("btn_pedido_limpiar",limpiar);
	Utiles_Botones.creaBotonPersonalizado("btn_agrega","AGREGAR" , Utiles_Botones.ICON_AGREGAR, false, showDetalleRendicion);
	// fin botones

	// eventos change
	$("#cmb_zona").change(llenarComboFondoFijo);
	// fin eventos change

	// calendario
	$('input.fecha_pedido').datepicker();
	// fin calendario

	// creacion de la tabla
	jQuery("#list2").jqGrid({ 
		url:($("#list2").attr("alt"))?'get_detalles_rendicion?id_rendicion='+$("#list2").attr("alt"):'',// url para obtener data
		mtype: 'GET',// metodo de solicitud
		datatype: "json",// formato de datos que representa la data
		colNames:['correlativo','id_rendicion','tipo_documento','unidad_organica',
		          'codPresupuesta','ctaCtble','centroCostos','sub_total','monto_impuesto',
		          'glosa','referente','ruc_proveedor','dni','id_proyecto','plantilla_impuesto','desc_trabajador',
		          'desc_proveedor','desc_cuenta','desc_unidadorg','desc_cencosto','desc_proyecto','Otros','Tipo Docu','N Serie', 'N Documento', 'Fecha','RUC/DNI','TOTAL'],
		colModel:[ 
		           {name:'correlativo',index:'correlativo',hidden : true},
		           {name:'id_rendicion',index:'id_rendicion',hidden : true},
		           {name:'tipo_documento',index:'tipo_documento',hidden : true},
		           {name:'unidad_organica',index:'unidad_organica',hidden : true},
		           {name:'codPresupuesta',index:'codPresupuesta',hidden : true},
		           {name:'ctaCtble',index:'ctaCtble',hidden : true},
		           {name:'centroCostos',index:'centroCostos',hidden : true},
		           {name:'sub_total',index:'sub_total',hidden : true},
		           {name:'monto_impuesto',index:'monto_impuesto',hidden : true},
		           {name:'glosa',index:'glosa',hidden : true},
		           {name:'referente',index:'referente',hidden : true},
		           {name:'ruc_proveedor',index:'ruc_proveedor',hidden : true},
		           {name:'dni',index:'dni',hidden : true},
		           {name:'id_proyecto',index:'id_proyecto',hidden : true},
		           {name:'plantilla_impuesto',index:'plantilla_impuesto',hidden : true},
		           {name:'desc_trabajador',index:'desc_trabajador',hidden : true},
		           {name:'desc_proveedor',index:'desc_proveedor',hidden : true},
		           {name:'desc_cuenta',index:'desc_cuenta',hidden : true},
		           {name:'desc_unidadorg',index:'desc_unidadorg',hidden : true},
		           {name:'desc_cencosto',index:'desc_cencosto',hidden : true},
		           {name:'desc_proyecto',index:'desc_proyecto',hidden : true},
		           {name:'monto_otros',index:'monto_otros',hidden : true},
		           
		           {name:'desc_documento',index:'desc_documento', width:60},
		           {name:'serie',index:'serie', width:15},
		           {name:'numero',index:'numero', width:25},
		           {name:'fecha',index:'fecha', width:20,sorttype:'date',align:"center"},
		           {name:'codigo',index:'codigo', width:30,sortable:false,align:"center"},
		           {name:'monto_total',index:'monto_total', width:30,sorttype:'number',formatter:'number', formatoptions: { decimalSeparator: ".", thousandsSeparator: " ", decimalPlaces: 2, defaultValue: '0.00' }, align:"right",summaryType:'sum'}
		          ], 
		rowNum:40,
		loadComplete: function () {
			data= $('#list2').jqGrid('getGridParam','data');
			var suma =0;
			$.each(data, function(i) {
				suma+=parseFloat(this.monto_total);
				if(this._id_)
					$.log("%s is %d years old.", "Bob", 2);
				else{
					 this._id_=(i+1);
				}
				jQuery("#list2").jqGrid('setRowData',this._id_,{correlativo:(i+1)});
			});
			
			suma = redondear(suma,2);
			
			//$(this).setGridParam({data: data});
			jQuery("#list2").jqGrid('setGridParam',{data:data}).trigger("reloadGrid");
		    $(this).jqGrid('footerData','set', {desc_documento:"SALDO:",serie:redondear(parseFloat($("#monto_base").val())-suma,2),codigo:"UTILIZADO:",monto_total:suma});
		},
		rowList:[40,60,80],
		pager: '#pager2',
		viewrecords: true,
		// autowidth: true,
		width:750,
		height:220,
		rownumbers: true,
		scrollOffset: 0,
		// sortname: 'monto_total',sort fijo
		// sortorder: "desc",sort fijo
		jsonReader: { 
			repeatitems : false/* id: "0", */
			/*
			 * page: function (obj) { return 1; }, total: function (obj) {
			 * return 1; }, records: function (obj) { return obj.length; },
			 * root:'rows'
			 */

			  },
		emptyrecords: "No hay registros",
		loadonce:true,
		footerrow : true, userDataOnFooter : true// altRows:true,
		}); 
	// fin de la tabla

	// addons de la tabla
	jQuery("#list2").jqGrid('navGrid', '#pager2', {
		edit : false,
		add : false,
		del : false
	});
	jQuery("#list2").navButtonAdd('#pager2', {
		caption : "Agregar",
		buttonicon : "ui-icon-plus",
		onClickButton : agregarDetalleRendicion,
		position : "last",
		title : "",
		cursor : "pointer"
	});
	jQuery("#list2").navButtonAdd('#pager2', {
		caption : "Editar",
		buttonicon : "ui-icon-pencil",
		onClickButton : editarDetalleRendicion,
		position : "last",
		title : "",
		cursor : "pointer"
	});

	jQuery("#list2").navButtonAdd('#pager2', {
		caption : "Eliminar",
		buttonicon : "ui-icon-trash",
		onClickButton : eliminaItem,
		position : "last",
		title : "",
		cursor : "pointer"
	});
	
	// fin de addons de la tabla
	
});

/*----------funciones------------*/
function redondear(cantidad, decimales) {
	 var cantidad = parseFloat(cantidad);
	 var decimales = parseFloat(decimales);
	 decimales = (!decimales ? 2 : decimales);
	 return Math.round(cantidad * Math.pow(10, decimales)) / Math.pow(10, decimales);
} 

function guardarRendicion(){
	if ($("#cajachicaForm").valid()) {
		
		Utiles_MensajesDialogo.mensajeConfirmacion("Guardar Cambios", "Desea realmente guardar los cambios?", function(){
			var data = $("#list2").jqGrid('getGridParam','data');
			//var postData = JSON.stringify(data);
			var tareas =new Array();
			var j=0;
			$.each(data, function(i,item) {
				if(this.actualizado == true){
					alert(this.actualizado);
					tareas[j++]=item;
				}
			});
			
			var rendicion = new Object();
			rendicion.fecha=$("#fec_emision").val();
			rendicion.id_fondo_fijo= $("#cmb_fondo").val();
			rendicion.id_rendicion = $("#list2").attr("alt");
			
			var obj = new Object();
			obj.detalle=data;
			rendicion.detalle =obj;
			$(this).dialog("close");
			Utiles_MensajesDialogo.showMensajeModal("Espere un momento!!");
			$.postJSON("guardar_rendicion",rendicion, function(rpta) {
				Utiles_MensajesDialogo.closeMensajeModal();
				if(rpta.operacion==true){
					Utiles_MensajesDialogo.showMensajeExito();
					cargar("frmAdministra_cajachica");
				}
				else
					Utiles_MensajesDialogo.showMensajeError("error");
			});
			
			/*var postData = JSON.stringify(obj);
			alert(postData);*/
			
		});
		
		
	}
	
}

function getDataDeForm(n){
	return {
		_id_:n,
		correlativo :  n,
		desc_documento : $.trim($("#cmb_documento option:selected").html()),
		serie : $("#serie").val(),
		numero : $("#numero").val(),
		fecha : $("#fecha").val(),
		codigo : ($("#rb_usuario").attr("checked"))?$("#dni_trabajador").val():$("#ruc_proveedor").val(),
		ruc_proveedor:$("#ruc_proveedor").val(),
		dni:$("#dni_trabajador").val(),
		desc_proveedor:$("#desc_proveedor").val(),
		desc_trabajador:$("#desc_trabajador").val(),
		plantilla_impuesto:$("#cmb_impuesto").val(),
		unidad_organica:$("#cod_unidad_org").val(),
		centroCostos:$("#cod_centro_costo").val(),
		tipo_documento:$("#cmb_documento").val(),
		id_proyecto:$("#cod_proyecto").val(),
		ctaCtble:$("#ctaCtble").val(),
		desc_cuenta:$("#descrip_cuenta").val(),
		desc_unidadorg:$("#desc_unidad_org").val(),
        desc_cencosto:$("#desc_centro_costos").val(),
        desc_proyecto:$("#desc_proyectos").val(),
		glosa:$("#glosa").val(),
		monto_total : $("#monto_total").val(),
		sub_total : $("#monto_subtotal").val(),
		monto_impuesto : $("#monto_impuesto").val(),
		monto_otros : $("#monto_otros").val()
	};
	
}

// CRUD
function agregarItem(){
	if($("#detalleRendicionForm").valid()){
		if($("#cmb_documento").val().length==0){
			Utiles_MensajesDialogo.showMensajeAlerta("Seleccione un tipo de Comprobante");
		}/*
		else if($.trim($("#cmb_documento option:selected").html())=="FACTURA" && parseFloat($("#monto_impuesto").val())==0 ){
			Utiles_MensajesDialogo.showMensajeAlerta("El tipo de documento seleccionado requiere un monto de impuesto");
		}*/
		else {
			Utiles_MensajesDialogo.mensajeConfirmacion("Agregar", "Desea agregar el item?", function(){
				var n = (jQuery('#list2').jqGrid('getGridParam', 'records'));
				jQuery("#list2").jqGrid('addRowData', 0, getDataDeForm(n+1));
				jQuery("#list2").trigger("reloadGrid")	;
				$(this).dialog("close");
				$("#monto_otros").addClass("caja_texto_gris");
				$("#monto_otros").attr("readonly","readonly");
				$("#monto_otros").val("0.00");
				if($("#ruc_proveedor").val()){
					$("#detalleRendicionForm").reset();
					$(".panel_proveedor").fadeIn("slow");
					$(".panel_usuario").fadeOut("slow");

					$(".panel_proveedor>td>input").addClass("required");
					$(".panel_usuario>td>input").removeClass("required");
					
					$("#rb_proveedor").attr("checked",true);
				}
				else{
					$("#detalleRendicionForm").reset();
					$(".panel_proveedor").fadeOut("slow");
					$(".panel_usuario").fadeIn("slow");
					
					$(".panel_usuario>td>input").addClass("required");
					$(".panel_proveedor>td>input").removeClass("required");
					
					$("#rb_usuario").attr("checked",true);
				}
			});
		}
	}
		
}

function actualizarItem(){
	var id = jQuery("#list2").jqGrid('getGridParam','selrow'); 
	jQuery("#list2").jqGrid('setRowData',id,getDataDeForm(id));
	jQuery("#list2").trigger("reloadGrid")	;
	//$("#btn_pedido>span.ui-button-text").html($("#btn_pedido>span.ui-button-text").html()+"(1)");
}

function eliminaItem(){
	var id = jQuery("#list2").jqGrid('getGridParam','selrow'); 
	if(id!=null){
		Utiles_MensajesDialogo.mensajeConfirmacion("Eliminar", "Desea realmente eliminar el item?", function(){
			jQuery("#list2").jqGrid('delRowData', id);
			jQuery("#list2").trigger("reloadGrid")	;
			$(this).dialog("close");
		});
	}
	else{
		alert("Seleccione un item!");
	}
	
}
// fin CRUD

function showDetalleRendicion(opcion) {
	if(opcion==1)
		Utiles_MensajesDialogo.showRequestDialog('Detalle de Rendicion', "jdDetalleRendicion", agregarItem,700,400);
	else if(opcion==2){
		Utiles_MensajesDialogo.showRequestDialog('Actualizar Detalle de Rendicion', "jdDetalleRendicion", actualizarItem,700,400,"estableceDatos");
	}
	
	/*if(opcion==2)
		$("<div>").ajaxStop(estableceDatos);*/
}

function estableceDatos(){
	var id = jQuery("#list2").jqGrid('getGridParam','selrow');
	var data = jQuery("#list2").jqGrid('getRowData',id);
	$("#fecha").val(data.fecha);
	$("#serie").val(data.serie);
	$("#numero").val(data.numero);
	$("#ctaCtble").val(data.ctaCtble);
	$("#descrip_cuenta").val(data.desc_cuenta);
	$("#monto_subtotal").val(data.sub_total);
	$("#monto_impuesto").val(data.monto_impuesto);
	$("#monto_otros").val(data.monto_otros);
	$("#monto_total").val(data.monto_total);
	$("#ruc_proveedor").val(data.ruc_proveedor);
	$("#desc_proveedor").val(data.desc_proveedor);
	$("#dni_trabajador").val(data.dni);
	$("#desc_trabajador").val(data.desc_trabajador);
	$("#cod_unidad_org").val(data.unidad_organica);
	$("#desc_unidad_org").val(data.desc_unidadorg);
	$("#cod_centro_costo").val(data.centroCostos);
	$("#desc_centro_costos").val(data.desc_cencosto);
	$("#cod_proyecto").val(data.id_proyecto);
	$("#glosa").val(data.glosa);
	$("#desc_proyectos").val(data.desc_proyecto);
	$("#cmb_documento").val(data.tipo_documento);
	$("#cmb_impuesto").val(data.plantilla_impuesto);
	
	if(data.id_proyecto){
		$(".panel_unidades").fadeOut("slow");
		$(".panel_proyecto").fadeIn("slow");
	}
	else{
		$(".panel_unidades").fadeIn("slow");
		$(".panel_proyecto").fadeOut("slow");
	}
	if(data.ruc_proveedor){
		$(".panel_proveedor").fadeIn("slow");
		$(".panel_usuario").fadeOut("slow");
		$("#rb_proveedor").attr("checked",true);
	}
	else{
		$(".panel_proveedor").fadeOut("slow");
		$(".panel_usuario").fadeIn("slow");
		$("#rb_usuario").attr("checked",true);
	}
}

function editarDetalleRendicion(){
	var id = jQuery("#list2").jqGrid('getGridParam','selrow'); 
	if(id!=null){
		showDetalleRendicion(2);	
	}
	else{
		alert("Seleccione un item!");
	}
}

function agregarDetalleRendicion(){
	showDetalleRendicion(1);
}

function llenarComboFondoFijo() {
	var zona = $("#cmb_zona").val();
	$("#cmb_fondo").bindCombo("fondo_en_zona",{zona : zona},{id : "id_fondofijo",desc:"descripcion"});
}

function limpiar(){
	$("#cajachicaForm").reset();
	jQuery("#list2").jqGrid('clearGridData',true);
}

/*----------fin funciones------------*/
